<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;">
<title>Knopflerfish HTTP/HTML OSGi graphical console</title>
<LINK href="resources/www/console.css" rel="stylesheet" type="text/css">
</head>
<body style=" margin: 4px;">

<div class="shadow"><h3 style="margin: 5px;">Knopflerfish HTTP/HTML OSGi graphical console</h3></div>

<div style="float: right; margin: 5px;">
<img alt="HTTP console on pocketPC 2003" src="httpconsole_ppc2003_1.png"/><br/>
<i>Image 1: HTTP console on pocketPC 2003</i>
</div>

<p>

The Knopflerfish HTTP/HTML OSGi console is a small servlet that can be run 
on any OSGi platform with an installed HTTP server. 
</p>
<p>
When started, the servlet registers at <tt>/servlet/console</tt> and 
allows access to the standard framework functions as bundle installation (both from URLs and using browser file upload), start, stop, update and uninstall. Additionally, detail info on a bundle such as state,
manifest and services can be displayed.
</p>

<p>
Optionally, the HTTP console can request a login/pwd before enabling
access. See <a class="std" href="#conf">configuration</a> for details.
</p>

<p>
The HTTP console has been tested on Knopflerfish, Eclipse 3.0 and Oscar. It also runs well on Pocket PC (tested using KF on the IBM J9 VM).
</p>

<p>
The main screen lists all installed bundles. One or more bundles 
can be selected by marking the checkbox on the left. 
After selecting bundles, the operations available as toolbar icons 
can be performed.
</p>

<p>
A pre-compiled bundle jar can be found at <a class="std" href="http://www.knopflerfish.org/repo/jars/httpconsole/httpconsole-1.0.0.jar">http://www.knopflerfish.org/repo/jars/httpconsole/httpconsole-1.0.0.jar</a>, as well in the <a class="std" href="http://www.knopflerfish.org/repo/repository.xml">KF bundle repository</a>
</p>

<p>
Source is available via <a class="std" href="https://www.knopflerfish.org/svn/knopflerfish.org/trunk/osgi/bundles/http/httpconsole/">KF subversion</a>
</p>

<br clear=all>

<div class="shadow">Toolbar</div>

<div style="float: right; margin: 5px;">
<img alt="Open a local file" src="httpconsole_ppc2003_3.png"/><br/>
<i>Image 2: Result after starting a bundle</i>
<div>
<img src="httpconsole_openfile.png"><br/>
<i>Image 3: Open a local file</i>
</div>
</div>

<p>
The toolbar display a set of command icons. When an icon is selected, the 
command will be performed. Any command result or errors will be displayed to 
the right of the bundle list.
</p>

<table>
 <tr>
 <td>
 <img  alt="Reload view" type="image" name="cmd_reload" src="resources/www/reload_green.gif"> </td>
 <td style="vertical-align:top;">
Reload page</td>
</tr>
 <tr>
 <td>
 <img alt="Install bundle from file" type="image" name="cmd_installfile" src="resources/www/open.gif">
 </td>
 <td style="vertical-align:top;">
Ask for a local bundle file, upload the file and install the bundle</td>
</tr>
 <tr>
 <td>
 <img  alt="Install bundle from URL" type="image" name="dialog_cmd_installurl" src="resources/www/openurl.gif"> </td>
 <td style="vertical-align:top;">
Ask for a bundle URL and install this bundle</td>
</tr>
 <tr>
 <td>
 <img  alt="Start selected bundles" type="image" name="cmd_start" src="resources/www/player_play.gif"> </td>
 <td style="vertical-align:top;">
Start selected bundles</td>
</tr>
 <tr>
 <td>
 <img  alt="Stop selected bundles" type="image" name="cmd_stop" src="resources/www/player_stop.gif"> </td>
 <td style="vertical-align:top;">
Stop selected bundles</td>
</tr>
 <tr>
 <td>
 <img  alt="Update selected bundles" type="image" name="cmd_update" src="resources/www/update.gif"> </td>
 <td style="vertical-align:top;">
Update selected bundles</td>
</tr>
 <tr>
 <td>
 <img  alt="Uninstall selected bundles" type="image" name="cmd_uninstall" src="resources/www/player_eject.gif"> </td>
 <td style="vertical-align:top;">
Uninstall selected bundles</td>
</tr>
 <tr>
 <td>
 <img  alt="Show info for selected bundles" type="image" name="cmd_info" src="resources/www/info.gif"> </td>
 <td style="vertical-align:top;">
Info about selected bundles. If no bundle is selected, show framework info</td>
</tr>
 <tr>
 <td>
 <img  alt="Show help" type="image" name="cmd_help" src="resources/www/help.gif"> </td>
 <td style="vertical-align:top;">
Show help page </td>
</tr>
</table>
</p>
<br clear="all"/>


<div class="shadow">Bundle icons</div>
<p>
Each bundle is displayed using an icon, the bundle's name and the bundle description. If a bundle's icon is clicked, the bundle is selected, and the bundle info page is displayed. 
</p>

<table>
<tr><td><img src="resources/www/bundle.gif"></td><td>Bundle with activator</td></tr><tr><td><img src="resources/www/bundle_started.gif"></td><td>Started bundle with activator</td></tr><tr><td><img src="resources/www/lib.gif"></td><td>Bundle without activator</td></tr><tr><td><img src="resources/www/lib_started.gif"></td><td>Started bundle without activator</td></tr>
</table>

<p>
</p>
<a name="conf"></a>
<div class="shadow">Configuration</div>

<div style="float: right; margin: 5px;">
<img alt="Login screen" src="httpconsole_login.png"/><br/>
<i>Image 4: Login screen</i>
</div>

<p>
The HTTP console can be configured using system properties:

<dl>

 <dt>org.knopflerfish.httpconsole.alias</dt>
 <dd>Alias for servlet registration. If set to '/', the
     http root will used for the console<br/>
     Default is <tt>/servlet/console</tt>. 
 </dd>

 <dt>org.knopflerfish.httpconsole.filter</dt>
 <dd>Filter string for matching HttpServices.<br/>
     This can be used to only set the console at some <br/>
     registered HttpServices.<br/>
     Default is <tt>(objectclass=org.osgi.service.http.HttpService)</tt>,<br/>
     which will match any http service.
 </dd>

 <dt>org.knopflerfish.httpconsole.requirelogin</dt>
 <dd>If <tt>true</tt>, require login, using name and password.<br/>
     Default is <tt>false</tt>
 </dd>

 <dt>org.knopflerfish.httpconsole.user</dt>
 <dd>User name required for login. <br/>
     Default is <tt>admin</tt>
 </dd>

 <dt>org.knopflerfish.httpconsole.pwd</dt>
 <dd>User password required for login. <br/>
     Default is <tt>admin</tt>
 </dd>

 <dt>org.knopflerfish.httpconsole.expirationtime</dt>
 <dd>Expiration time for login sessions, in seconds. After this time,
     the user will be logged out.<br/>
     Default is 600 (10 minutes)
 </dd>

</dl>
</p>
<br clear="all"/>
<p>
</p>

<div class="shadow">&copy 2004 <a class="std" href="http://www.knopflerfish.org">Knopflerfish</a>. Icons used with permission from the <a class="std" href="http://www.carlitus.net">Noia</a> icon collection</div>

</body>
</html>